home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 23 / CU Amiga - Super CD-ROM 23 (June 1998).iso / CUCD / Kids / NightMathAttack / NMA.AMOS / NMA.amosSourceCode < prev    next >
Encoding:
AMOS Source Code  |  1995-06-15  |  15.5 KB  |  821 lines

  1. ' -------------------- 
  2. ' "NIGHT MATH ATTACK"
  3. '        By
  4. ' Chris Evans
  5. ' 44 Shady Lane - RR7
  6. ' St. Thomas, ON 
  7. ' Canada  N5P 3T2
  8. ' -------------------- 
  9. Amos Lock 
  10. Break Off 
  11. Global D0PRINT
  12. Led Off 
  13. Music 1
  14. Unpack 9 To 1
  15. Get Bob 1,0,0 To 50,14
  16. Screen Close 1
  17. Unpack 6 To 0
  18. Unpack 6 To 1
  19. Cls 0
  20. Hide On 
  21. Screen Copy 0,0,0,319,156 To 1,0,0
  22. Screen To Front 1
  23. Screen 1
  24. Double Buffer 
  25. Bob 1,-49,0,1
  26. Channel 1 To Bob 1
  27. Hide On 
  28. Amal 1,"M 368,0,368"
  29. Amal On 
  30. While Chanmv(1)
  31. Wend 
  32. Bob Off 
  33. Amal Off 
  34. Screen Copy 0,0,157,319,199 To 1,0,157
  35. Wait 100
  36. Screen Close 1
  37. Copper Off 
  38. Break Off 
  39. 'Set up skip instructions screen.
  40. Screen Open 0,320,200,2,Lowres
  41. Curs Off 
  42. Flash Off 
  43. Cls 0
  44. Palette 0,$FFF
  45. Locate 0,11
  46. Centre "Press I for instructions"
  47. Cdown 
  48. Centre "Press S to skip instructions"
  49. Set Rainbow 0,0,64,"","","(1,1,1)"
  50. Rainbow 0,56,0,255
  51. Channel 1 To Rainbow 0
  52. Amal 1,"L: M -16,0,100; M 16,0,0; J L;"
  53. Amal On 
  54. Copper On 
  55. Hide On 
  56. Break Off 
  57. Do 
  58.    I$=""
  59.    While I$=""
  60.       I$=Inkey$
  61.    Wend 
  62.    Exit If I$="i" or I$="I"
  63.    Exit If I$="S" or I$="s"
  64. Loop 
  65. Amal Off 
  66. If I$="S" or I$="s" Then Goto 22
  67. 'Start instructions
  68. Copper Off 
  69. Break Off 
  70. Rainbow Del 0
  71. Screen Open 0,320,220,4,Lowres
  72. Colour 2,$0
  73. Set Rainbow 0,2,223,"(1,1,0)","(1,1,0)","(1,1,0)"
  74. Rainbow 0,0,49,200
  75. NUM=182
  76. C0L0RRANEM=$110
  77. C0L0RRANE=C0L0RRANEM*15
  78. For T=0 To 15
  79.    Rain(0,T)=C0L0RRANEM*T
  80. Next T
  81. For T=16 To NUM
  82.    Rain(0,T)=C0L0RRANE
  83. Next T
  84. S=C0L0RRANE
  85. For T=NUM+1 To NUM+16
  86.    Rain(0,T)=S
  87.    S=S-C0L0RRANEM
  88. Next T
  89. Cls 0
  90. Curs Off 
  91. Cls 0
  92. Copper On 
  93. Hide On 
  94. Break Off 
  95. Restore DATLABELONE
  96. Do 
  97.    Read A$
  98.    If A$="PAUSE" : D0SCROLL[12] : Clear Key : Wait Key : End If 
  99.    If A$="STOPANDASK1"
  100.       D0SCROLL[12]
  101.       D0PRINT=1
  102.       Do 
  103.          I$=""
  104.          While I$=""
  105.             I$=Inkey$
  106.          Wend 
  107.          If I$="n" : D0PRINT=0 : End If 
  108.          If I$="N" : D0PRINT=0 : End If 
  109.          If I$="p" : D0PRINT=-1 : End If 
  110.          If I$="P" : D0PRINT=-1 : End If 
  111.          If D0PRINT<>1 : Exit : End If 
  112.       Loop 
  113.       I$=""
  114.    End If 
  115.    If "STOP"=Left$(A$,4) Then Exit 
  116.    If A$<>"PAUSE"
  117.       L=Len(A$)
  118.       L=L*8
  119.       PLACE=160-(Int(L/2))
  120.       Ink 2
  121.       Gr Writing 0
  122.       Text PLACE,210,A$
  123.       Def Scroll 1,0,0 To 319,219,0,-1
  124.       D0SCROLL[10]
  125.    End If 
  126. Loop 
  127. D0SCROLL[220]
  128. Procedure D0SCROLL[HOWMANY]
  129.    For T=1 To HOWMANY
  130.       Scroll 1
  131.       Wait 2
  132.    Next T
  133. End Proc
  134. DATLABELONE:
  135. Data "Hello!  Welcome to Night Math Attack."
  136. Data "","Instructions:",""
  137. Data "After choosing the math operation, a"
  138. Data "question will appear at the top of the"
  139. Data "screen.  You must use the joystick or"
  140. Data "cursor keys to move the chopper up or"
  141. Data "down to the correct answer.  Then push"
  142. Data "the fire button or space bar to fire a"
  143. Data "missile.  The program will tell you"
  144. Data "whether it is correct or not, and it"
  145. Data "will give you another question.  When"
  146. Data "you are done 20 questions you will be"
  147. Data "given a report card and the choice of"
  148. Data "doing another 20, quitting, or going"
  149. Data "back to the main menu.","",""
  150. Data "Press any key to continue.","PAUSE"
  151. Data "","During the Game:"
  152. Data "Main Menu = Esc      "
  153. Data "  Quit = Q or q"
  154. Data "      Sound On = Left Shift Key"
  155. Data "      Sound Off = Right Shift Key"
  156. Data "","Hold either shift key down until the"
  157. Data "correct message appears on the bottom"
  158. Data "line.","","","","","","","",""
  159. Data "Press any key to continue.","PAUSE"
  160. Data "","You can set the game to immediately"
  161. Data "print out any wrongly answered questions"
  162. Data "& 'out of time' questions, so that a"
  163. Data "list can be made of these difficult"
  164. Data "questions.  If you choose this print-out"
  165. Data "feature & your printer is not connected"
  166. Data "or off line, the game will freeze until"
  167. Data "the printer is on-line.","","","","","","","",""
  168. Data "Press P to print errors"
  169. Data "Press N for no print-out"
  170. Data "STOPANDASK1"
  171. 'End instructions
  172. 22 Copper Off 
  173. Break Off 
  174. Rainbow Del 0
  175. Unpack 8 To 0
  176. Get Bob 1,0,0 To 48,19
  177. Get Bob 2,0,20 To 48,39
  178. Get Bob 3,0,40 To 48,59
  179. Unpack 7 To 0
  180. Copper On 
  181. Hide On 
  182. Break Off 
  183. Key Speed 1,10
  184. KINDOFQUES$=""
  185. Do 
  186.    I$=""
  187.    While I$=""
  188.       I$=Inkey$
  189.    Wend 
  190.    If I$="1" : KINDOFQUES$="A" : Exit : End If 
  191.    If I$="2" : KINDOFQUES$="S" : Exit : End If 
  192.    If I$="3" : KINDOFQUES$="M" : Exit : End If 
  193.    If I$="4" : KINDOFQUES$="D" : Exit : End If 
  194. Loop 
  195. Ink 0
  196. I=Val(I$)
  197. Set Rainbow 0,I,64,"(1,1,1)","",""
  198. Rainbow 0,56,0,255
  199. Channel 1 To Rainbow 0
  200. Amal 1,"L: M -16,0,100 M 16,0,0 J L"
  201. Amal On 
  202. Wait 250
  203. Amal Off 
  204. Default 
  205. Rainbow Del 0
  206. Screen Close 0
  207. 23 Copper Off 
  208. Break Off 
  209. Unpack 8 To 1
  210. Screen Open 0,320,126,32,Lowres
  211. Curs Off 
  212. Flash Off 
  213. Fade 1 To 1
  214. Wait 15
  215. Set Rainbow 0,0,50,"","","(1,1,1)"
  216. Rainbow 0,0,145,33
  217. For T=0 To 15
  218.    U=15-T
  219.    Rain(0,T+16)=((T*256))+(T*16)+U
  220. Next T
  221. Screen Open 1,320,84,8,Lowres
  222. Curs Off 
  223. Paper 0
  224. Pen 6
  225. Cls 0
  226. Unpack 10 To 3
  227. Screen Display 3,,40,,
  228. Shift Up 1,8,15,1
  229. Screen Open 2,320,16,2,Lowres
  230. Screen 2
  231. Curs Off 
  232. Paper 0
  233. Cls 0
  234. Colour 1,$FFF
  235. Screen Display 2,,244,,
  236. Screen 0
  237. Screen To Front 2
  238. Screen To Front 0
  239. Double Buffer 
  240. Autoback 0
  241. Screen Swap 
  242. Screen To Front 2
  243. SOUND$="YES"
  244. Home 
  245. X Mouse=258
  246. Y Mouse=242
  247. X=130
  248. Y=60
  249. Bob 1,X,Y,1
  250. AASKED=0
  251. Gosub NEWQSTN
  252. Timer=0
  253. FAR=0
  254. If D0PRINT Then Lprint "OOT=Out Of Time"
  255. USEBOB=1
  256. Music 1
  257. Copper On 
  258. Break Off 
  259. FIRD=False
  260. Do 
  261.    Add USEBOB,1,1 To 3
  262.    Bob 1,X,Y,USEBOB
  263.    Wait Vbl 
  264.    Cls 0
  265.    Bob Draw 
  266.    Screen Swap 
  267.    Cls 0
  268.    Bob Draw 
  269.    Screen Swap 
  270.    I$=Inkey$
  271.    S=Scancode
  272.    If S=76
  273.       If Y>7
  274.          Add Y,-2
  275.       End If 
  276.       If Not Y>7
  277.          Y=7
  278.       End If 
  279.    End If 
  280.    If S=77
  281.       If Y<106
  282.          Add Y,2
  283.       End If 
  284.       If Not Y<106
  285.          Y=106
  286.       End If 
  287.    End If 
  288.    If I$=" "
  289.       Bob 9,X Bob(1)-1,Y Bob(1)+14,9
  290.       FIRD=True
  291.    End If 
  292.    If S=69
  293.       Screen Close 1
  294.       Screen Close 2
  295.       Goto 22
  296.    End If 
  297.    S=0
  298.    If I$="Q" Then Goto NEXIT
  299.    If I$="q" Then Goto NEXIT
  300.    If Key Shift=1
  301.       SOUND$="YES"
  302.       Screen 2
  303.       Cls 0
  304.       Locate 0,0
  305.       Print "Sound On          Qu. #"+Str$(AASKED);
  306.       Screen 0
  307.       Led Off 
  308.       Music 1
  309.    End If 
  310.    If Key Shift=2
  311.       SOUND$="NO"
  312.       Screen 2
  313.       Cls 0
  314.       Locate 0,0
  315.       Print "Sound Off         Qu. #"+Str$(AASKED);
  316.       Screen 0
  317.       Music Off 
  318.    End If 
  319.    If Jup(1)
  320.       If Y>7
  321.          Add Y,-2
  322.       End If 
  323.       If Not Y>7
  324.          Y=7
  325.       End If 
  326.    End If 
  327.    If Jdown(1)
  328.       If Y<106
  329.          Add Y,2
  330.       End If 
  331.       If Not Y<106
  332.          Y=106
  333.       End If 
  334.    End If 
  335.    If Fire(1)
  336.       Bob 9,X Bob(1)-1,Y Bob(1)+14,9
  337.       FIRD=True
  338.    End If 
  339.    If FIRD
  340.       If X Bob(9)>1
  341.          Bob 9,X Bob(9)-6,Y Bob(9),9
  342.          If Bob Col(9,5 To 5)
  343.             If SOUND$="YES"
  344.                Boom 
  345.             End If 
  346.             Gosub FI
  347.          End If 
  348.          If Bob Col(9,6 To 6)
  349.             If SOUND$="YES"
  350.                Boom 
  351.             End If 
  352.             Gosub SE
  353.          End If 
  354.          If Bob Col(9,7 To 7)
  355.             If SOUND$="YES"
  356.                Boom 
  357.             End If 
  358.             Gosub TH
  359.          End If 
  360.          If Bob Col(9,8 To 8)
  361.             If SOUND$="YES"
  362.                Boom 
  363.             End If 
  364.             Gosub FO
  365.          End If 
  366.       Else 
  367.          Bob Off 9
  368.          FIRD=False
  369.       End If 
  370.    End If 
  371.    If AASKED>20
  372.       Goto HOWDID
  373.    End If 
  374.    If Timer>=1100
  375.       If AASKED<21
  376.          WRONG=WRONG+1
  377.          Screen Open 4,320,200,2,Lowres
  378.          Colour 0,$0
  379.          Colour 1,$F00
  380.          Locate 0,12
  381.          Pen 1
  382.          Paper 0
  383.          CENTE["Out of Time!"]
  384.          ANS[KINDOFQUES$,FIRST,SECOND,ANSWER,300]
  385.          Curs Off 
  386.          Wait 300
  387.          Bob Off 9
  388.          FIRD=False
  389.          Screen Close 4
  390.          Cls 0
  391.          Bob Draw 
  392.          Screen Swap 
  393.          Cls 0
  394.          Bob Draw 
  395.          Screen Swap 
  396.          Gosub NEWQSTN
  397.          Timer=0
  398.          X=130
  399.          Y=60
  400.       End If 
  401.    End If 
  402. Loop 
  403. Proc XIT[SOUND$,CORRECT,WRONG]
  404. NEWQSTN:
  405. Copper Off 
  406. Screen 0
  407. Cls 0
  408. Screen Swap 
  409. Cls 0
  410. Screen Swap 
  411. AASKED=AASKED+1
  412. Screen To Front 2
  413. Screen 0
  414. If SOUND$="YES"
  415.    Screen 2
  416.    Cls 0
  417.    Locate 0,0
  418.    If AASKED<>0
  419.       Print "Sound On          Qu. #"+Str$(AASKED);
  420.    End If 
  421.    If AASKED=0
  422.       Print "Sound On          Qu. #"+Str$(1);
  423.    End If 
  424.    Screen 0
  425. End If 
  426. If SOUND$="NO"
  427.    Screen 2
  428.    Cls 0
  429.    Locate 0,0
  430.    If AASKED<>0
  431.       Print "Sound Off         Qu. #"+Str$(AASKED);
  432.    End If 
  433.    If AASKED=0
  434.       Print "Sound Off         Qu. #"+Str$(1);
  435.    End If 
  436.    Screen 0
  437. End If 
  438. Screen 1
  439. Cls 0
  440. Locate 0,2
  441. FIRST=0
  442. SECOND=0
  443. ANSWER=0
  444. FT=0
  445. SD=0
  446. AR=0
  447. BB=0
  448. CC=0
  449. DD=0
  450. If KINDOFQUES$="A"
  451.    FIRST=Rnd(99)
  452.    SECOND=Rnd(8)
  453.    SECOND=SECOND+1
  454.    Centre Str$(FIRST)+" + "+Str$(SECOND)+" ="
  455.    ANSWER=FIRST+SECOND
  456. End If 
  457. If KINDOFQUES$="S"
  458.    FIRST=Rnd(89)
  459.    SECOND=Rnd(8)
  460.    FIRST=FIRST+10
  461.    SECOND=SECOND+1
  462.    Centre Str$(FIRST)+" - "+Str$(SECOND)+" ="
  463.    ANSWER=FIRST-SECOND
  464. End If 
  465. If KINDOFQUES$="M"
  466.    FIRST=Rnd(12)
  467.    SECOND=Rnd(12)
  468.    Centre Str$(FIRST)+" X "+Str$(SECOND)+" ="
  469.    ANSWER=FIRST*SECOND
  470. End If 
  471. If KINDOFQUES$="D"
  472.    FT=Rnd(9)
  473.    SD=Rnd(9)
  474.    Inc FT
  475.    Inc SD
  476.    AR=FT*SD
  477.    FIRST=AR
  478.    SECOND=FT
  479.    ANSWER=SD
  480.    DIV$=" "+Chr$(247)+" "
  481.    Centre Str$(FIRST)+DIV$+Str$(SECOND)+" ="
  482. End If 
  483. Cdown 
  484. Cline 
  485. 2 NUMBER=Rnd(3)
  486. If KINDOFQUES$="A"
  487.    BB=FIRST+(Rnd(8)+1)
  488.    CC=FIRST+(Rnd(8)+1)
  489.    DD=FIRST+(Rnd(8)+1)
  490. End If 
  491. If KINDOFQUES$="S"
  492.    BB=FIRST-(Rnd(8)+1)
  493.    CC=FIRST-(Rnd(8)+1)
  494.    DD=FIRST-(Rnd(8)+1)
  495. End If 
  496. If KINDOFQUES$="M"
  497.    BB=Rnd(144)
  498.    CC=Rnd(144)
  499.    DD=Rnd(144)
  500. End If 
  501. If KINDOFQUES$="D"
  502.    BB=Rnd(9)
  503.    CC=Rnd(9)
  504.    DD=Rnd(9)
  505.    BB=BB+1
  506.    CC=CC+1
  507.    DD=DD+1
  508. End If 
  509. If ANSWER=BB Then Goto 2
  510. If ANSWER=CC Then Goto 2
  511. If ANSWER=DD Then Goto 2
  512. If BB=CC Then Goto 2
  513. If BB=DD Then Goto 2
  514. If CC=DD Then Goto 2
  515. If NUMBER=0
  516.    Locate 0,3 : Print ANSWER
  517.    Locate 0,5 : Print BB
  518.    Locate 0,7 : Print CC
  519.    Locate 0,9 : Print DD
  520. End If 
  521. If NUMBER=1
  522.    Locate 0,3 : Print BB
  523.    Locate 0,5 : Print ANSWER
  524.    Locate 0,7 : Print CC
  525.    Locate 0,9 : Print DD
  526. End If 
  527. If NUMBER=2
  528.    Locate 0,3 : Print BB
  529.    Locate 0,5 : Print CC
  530.    Locate 0,7 : Print ANSWER
  531.    Locate 0,9 : Print DD
  532. End If 
  533. If NUMBER=3
  534.    Locate 0,3 : Print BB
  535.    Locate 0,5 : Print CC
  536.    Locate 0,7 : Print DD
  537.    Locate 0,9 : Print ANSWER
  538. End If 
  539. Ink 6
  540. Box 104,6 To 216,16
  541. Screen 0
  542. Bob Draw 
  543. X=130
  544. Y=60
  545. Bob 1,X,Y,1
  546. Screen To Front 2
  547. Screen 0
  548. Get Bob 1,4,103,5 To 217,17
  549. Get Bob 1,5,5,15 To 33,24
  550. Get Bob 1,6,5,31 To 33,40
  551. Get Bob 1,7,5,47 To 33,56
  552. Get Bob 1,8,5,63 To 33,72
  553. Cls 0
  554. Bob 4,103,6,4
  555. Bob 5,0,32,5
  556. Bob 6,0,55,6
  557. Bob 7,0,78,7
  558. Bob 8,0,101,8
  559. Screen Swap 
  560. Bob Clear 
  561. Cls 0
  562. Bob Draw 
  563. Screen Swap 
  564. Bob Clear 
  565. Cls 0
  566. Bob Draw 
  567. Copper On 
  568. Hide On 
  569. Timer=0
  570. Return 
  571. HOWDID:
  572. Key Speed 10,2
  573. Clear Key 
  574. Screen Close 0
  575. Screen Open 0,320,200,32,Lowres
  576. Curs Off 
  577. Cls 0
  578. Home 
  579. Pen 31
  580. Paper 0
  581. If CORRECT<>1
  582.    CENTE["You got"+Str$(CORRECT)+" questions right."]
  583. Else 
  584.    CENTE["You got"+Str$(CORRECT)+" question right."]
  585. End If 
  586. If WRONG<>1
  587.    CENTE["You got"+Str$(WRONG)+" questions wrong."]
  588. Else 
  589.    CENTE["You got"+Str$(WRONG)+" question wrong."]
  590. End If 
  591. CENTE["Your percent of questions right is"]
  592. CENTE[Str$(CORRECT*5)+"."]
  593. CENTE["Your percent of questions wrong is"]
  594. CENTE[Str$(WRONG*5)+"."]
  595. Print "  C key = Continue"
  596. Print "  Q key = Quit"
  597. Print "Esc key = Main menu"
  598. AASKED=0
  599. 1 I$=""
  600. While I$=""
  601.    I$=Inkey$
  602. Wend 
  603. If Scancode=69
  604.    Screen Close 0
  605.    Screen Close 1
  606.    Screen Close 2
  607.    Goto 22
  608. End If 
  609. If I$="C" Then Goto 3
  610. If I$="c" Then Goto 3
  611. If I$="Q" Then Proc XIT[SOUND$,CORRECT,WRONG]
  612. If I$="q" Then Proc XIT[SOUND$,CORRECT,WRONG]
  613. Goto 1
  614. 3 CORRECT=0
  615. WRONG=0
  616. AASKED=0
  617. Screen Close 0
  618. Screen Close 1
  619. Screen Close 2
  620. Key Speed 0,1
  621. Goto 23
  622. FI:
  623. ZZ=CORRECT
  624. If NUMBER=0 Then Gosub COR
  625. If ZZ<>CORRECT Then Goto 4
  626. WANSWER=BB
  627. If NUMBER<>0 Then Gosub WOR
  628. 4 Return 
  629. SE:
  630. ZZ=CORRECT
  631. If NUMBER=1 Then Gosub COR
  632. If ZZ<>CORRECT Then Goto 5
  633. If NUMBER=0 Then WANSWER=BB
  634. If NUMBER<>0 Then WANSWER=CC
  635. If NUMBER<>1 Then Gosub WOR
  636. 5 Return 
  637. TH:
  638. ZZ=CORRECT
  639. If NUMBER=2 Then Gosub COR
  640. If ZZ<>CORRECT Then Goto 6
  641. If NUMBER<2 Then WANSWER=CC
  642. If NUMBER=3 Then WANSWER=DD
  643. If NUMBER<>2 Then Gosub WOR
  644. 6 Return 
  645. FO:
  646. ZZ=CORRECT
  647. If NUMBER=3 Then Gosub COR
  648. If ZZ<>CORRECT Then Goto 7
  649. WANSWER=DD
  650. If NUMBER<>3 Then Gosub WOR
  651. 7 Return 
  652. COR:
  653. Bob Off 9
  654. FIRD=False
  655. Screen Open 4,320,200,2,Lowres
  656. Colour 0,$0
  657. Colour 1,$F00
  658. Paper 0
  659. Pen 1
  660. Locate 0,12
  661. Centre "Correct!"
  662. Curs Off 
  663. Wait 300
  664. Inc CORRECT
  665. Screen Close 4
  666. Cls 0
  667. Bob Draw 
  668. Screen Swap 
  669. Cls 0
  670. Bob Draw 
  671. Screen Swap 
  672. X=130
  673. Y=60
  674. Bob 1,X,Y,USEBOB
  675. Gosub NEWQSTN
  676. Timer=0
  677. Clear Key 
  678. Return 
  679. WOR:
  680. Bob Off 9
  681. FIRD=False
  682. Screen Open 4,320,200,2,Lowres
  683. Colour 0,$0
  684. Colour 1,$F00
  685. Locate 0,12
  686. Pen 1
  687. Paper 0
  688. CENTE["Wrong!"]
  689. ANS[KINDOFQUES$,FIRST,SECOND,ANSWER,WANSWER]
  690. Curs Off 
  691. Wait 300
  692. Inc WRONG
  693. Screen Close 4
  694. Cls 0
  695. Bob Draw 
  696. Screen Swap 
  697. Cls 0
  698. Bob Draw 
  699. Screen Swap 
  700. X=130
  701. Y=60
  702. Bob 1,X,Y,USEBOB
  703. Gosub NEWQSTN
  704. Timer=0
  705. Clear Key 
  706. Return 
  707. NEXIT:
  708. Clear Key 
  709. Copper Off 
  710. Screen Open 0,320,200,32,Lowres
  711. Curs Off 
  712. Cls 0
  713. Home 
  714. Pen 31
  715. Paper 0
  716. Key Speed 10,2
  717. If CORRECT<>1
  718.    CENTE["You got"+Str$(CORRECT)+" questions right."]
  719. Else 
  720.    CENTE["You got"+Str$(CORRECT)+" question right."]
  721. End If 
  722. If WRONG<>1
  723.    CENTE["You got"+Str$(WRONG)+" questions wrong."]
  724. Else 
  725.    CENTE["You got"+Str$(WRONG)+" question wrong."]
  726. End If 
  727. CENTE["Press any key."]
  728. Copper On 
  729. Hide On 
  730. Clear Key 
  731. Wait Key 
  732. Proc XIT[SOUND$,CORRECT,WRONG]
  733. Procedure XIT[SOUND$,CORRECT,WRONG]
  734.    Key Speed 10,2
  735.    Copper Off 
  736.    Screen Close 0
  737.    Screen Close 1
  738.    Screen Close 2
  739.    Screen Close 3
  740.    Screen Open 0,320,200,2,Lowres
  741.    Colour 0,0
  742.    Colour 1,$FFF
  743.    Curs Off 
  744.    Cls 0
  745.    Paper 0
  746.    Set Rainbow 0,0,64,"(1,1,1)","",""
  747.    Rainbow 0,56,0,255
  748.    Channel 1 To Rainbow 0
  749.    Amal 1,"L: M -16,0,100 M 16,0,0 J L"
  750.    Amal On 
  751.    Under On 
  752.    CENTE["Shareware Offer"]
  753.    Under Off 
  754.    Print 
  755.    Print 
  756.    CENTE["REGISTER FOR A FREE EDUCATIONAL GAME!"]
  757.    Print 
  758.    Print "Users who register Night Math Attack"
  759.    Print "with the author and send the Shareware"
  760.    Print "fee will receive a free educational"
  761.    Print "game, Spell Chopper.  The player selects"
  762.    Cup 
  763.    Print "a spelling level from grades 1-6, and"
  764.    Print "then uses the helicopter missile to"
  765.    Print "choose the correctly spelled word in the"
  766.    Cup 
  767.    Print "same way as Night Math Attack.  To"
  768.    Print "register and order send $5 U.S."
  769.    Print "(includes air shipping) to:"
  770.    Print 
  771.    Print "          CHRIS EVANS"
  772.    Print "          44 Shady Lane - RR7"
  773.    Print "          St. Thomas, ON"
  774.    Print "          Canada N5P 3T2"
  775.    Print 
  776.    CENTE["      Voice : 519-633-2314      "]
  777.    CENTE["Email : chris.evans@homebase.com"]
  778.    Print 
  779.    Print "Apr. 95.  Press any key to quit.";
  780.    Copper On 
  781.    Hide On 
  782.    Clear Key 
  783.    Wait Key 
  784.    End 
  785. End Proc
  786. Procedure CENTE[WHAT$]
  787.    Centre WHAT$
  788.    Print 
  789. End Proc
  790. Procedure ANS[KINDOFQUES$,FIRST,SECOND,ANSWER,WANSWER]
  791.    If KINDOFQUES$="A"
  792.       Centre Str$(FIRST)+" + "+Str$(SECOND)+" = "+Str$(ANSWER)
  793.    End If 
  794.    If KINDOFQUES$="S"
  795.       Centre Str$(FIRST)+" - "+Str$(SECOND)+" = "+Str$(ANSWER)
  796.    End If 
  797.    If KINDOFQUES$="M"
  798.       Centre Str$(FIRST)+" X "+Str$(SECOND)+" = "+Str$(ANSWER)
  799.    End If 
  800.    If KINDOFQUES$="D"
  801.       Centre Str$(FIRST)+" "+Chr$(247)+" "+Str$(SECOND)+" = "+Str$(ANSWER)
  802.    End If 
  803.    If D0PRINT
  804.       LFIRST=Len(Str$(FIRST))
  805.       PFIRST$=Str$(FIRST)+Space$(3-LFIRST)
  806.       LSECOND=Len(Str$(SECOND))
  807.       PSECOND$=Str$(SECOND)+Space$(3-LSECOND)
  808.       LANSWER=Len(Str$(ANSWER))
  809.       PANSWER$=Str$(ANSWER)+Space$(3-LANSWER)
  810.       If WANSWER=300 : PWANSWER$="OOT" : End If 
  811.       If WANSWER<>300
  812.          LWANSWER=Len(Str$(WANSWER))
  813.          PWANSWER$=Str$(WANSWER)+Space$(3-LWANSWER)
  814.       End If 
  815.       If KINDOFQUES$="A" : SIG$="+" : End If 
  816.       If KINDOFQUES$="S" : SIG$="-" : End If 
  817.       If KINDOFQUES$="M" : SIG$="X" : End If 
  818.       If KINDOFQUES$="D" : SIG$="/" : End If 
  819.       Lprint PFIRST$+SIG$+PSECOND$+"="+PANSWER$+" NOT "+PWANSWER$
  820.    End If 
  821. End Proc